package com.skivingcloud.camunda.entity;

import org.camunda.bpm.engine.delegate.Expression;
import org.camunda.bpm.engine.impl.form.handler.StartFormHandler;
import org.camunda.bpm.engine.impl.persistence.entity.IdentityLinkEntity;
import org.camunda.bpm.engine.impl.task.TaskDefinition;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author hushouquan
 */
public class ProcessDefinitionEntity implements Serializable{
    private String id;
    private boolean isSubProcessScope = false;
    private String name;
    private String description;
    private String key;
    private int revision = 1;
    private int version;
    private String category;
    private String deploymentId;
    private String resourceName;
    private Integer historyLevel;
    private StartFormHandler startFormHandler;
    private String diagramResourceName;
    private boolean isGraphicalNotationDefined;
    private Map<String, TaskDefinition> taskDefinitions;
    private boolean hasStartFormKey;
    private int suspensionState;
    private String tenantId;
    private String versionTag;
    private Integer historyTimeToLive;
    private boolean isIdentityLinksInitialized;
    private List<IdentityLinkEntity> definitionIdentityLinkEntities;
    private Set<Expression> candidateStarterUserIdExpressions;
    private Set<Expression> candidateStarterGroupIdExpressions;
    private boolean isStartableInTasklist;
    private boolean firstVersion;
    
    public String getId(){
        return id;
    }
    
    public void setId(String id){
        this.id = id;
    }
    
    public boolean isSubProcessScope(){
        return isSubProcessScope;
    }
    
    public void setSubProcessScope(boolean subProcessScope){
        isSubProcessScope = subProcessScope;
    }
    
    public String getName(){
        return name;
    }
    
    public void setName(String name){
        this.name = name;
    }
    
    public String getDescription(){
        return description;
    }
    
    public void setDescription(String description){
        this.description = description;
    }
    
    public String getKey(){
        return key;
    }
    
    public void setKey(String key){
        this.key = key;
    }
    
    public int getRevision(){
        return revision;
    }
    
    public void setRevision(int revision){
        this.revision = revision;
    }
    
    public int getVersion(){
        return version;
    }
    
    public void setVersion(int version){
        this.version = version;
    }
    
    public String getCategory(){
        return category;
    }
    
    public void setCategory(String category){
        this.category = category;
    }
    
    public String getDeploymentId(){
        return deploymentId;
    }
    
    public void setDeploymentId(String deploymentId){
        this.deploymentId = deploymentId;
    }
    
    public String getResourceName(){
        return resourceName;
    }
    
    public void setResourceName(String resourceName){
        this.resourceName = resourceName;
    }
    
    public Integer getHistoryLevel(){
        return historyLevel;
    }
    
    public void setHistoryLevel(Integer historyLevel){
        this.historyLevel = historyLevel;
    }
    
    public StartFormHandler getStartFormHandler(){
        return startFormHandler;
    }
    
    public void setStartFormHandler(StartFormHandler startFormHandler){
        this.startFormHandler = startFormHandler;
    }
    
    public String getDiagramResourceName(){
        return diagramResourceName;
    }
    
    public void setDiagramResourceName(String diagramResourceName){
        this.diagramResourceName = diagramResourceName;
    }
    
    public boolean isGraphicalNotationDefined(){
        return isGraphicalNotationDefined;
    }
    
    public void setGraphicalNotationDefined(boolean graphicalNotationDefined){
        isGraphicalNotationDefined = graphicalNotationDefined;
    }
    
    public Map<String, TaskDefinition> getTaskDefinitions(){
        return taskDefinitions;
    }
    
    public void setTaskDefinitions(Map<String, TaskDefinition> taskDefinitions){
        this.taskDefinitions = taskDefinitions;
    }
    
    public boolean isHasStartFormKey(){
        return hasStartFormKey;
    }
    
    public void setHasStartFormKey(boolean hasStartFormKey){
        this.hasStartFormKey = hasStartFormKey;
    }
    
    public int getSuspensionState(){
        return suspensionState;
    }
    
    public void setSuspensionState(int suspensionState){
        this.suspensionState = suspensionState;
    }
    
    public String getTenantId(){
        return tenantId;
    }
    
    public void setTenantId(String tenantId){
        this.tenantId = tenantId;
    }
    
    public String getVersionTag(){
        return versionTag;
    }
    
    public void setVersionTag(String versionTag){
        this.versionTag = versionTag;
    }
    
    public Integer getHistoryTimeToLive(){
        return historyTimeToLive;
    }
    
    public void setHistoryTimeToLive(Integer historyTimeToLive){
        this.historyTimeToLive = historyTimeToLive;
    }
    
    public boolean isIdentityLinksInitialized(){
        return isIdentityLinksInitialized;
    }
    
    public void setIdentityLinksInitialized(boolean identityLinksInitialized){
        isIdentityLinksInitialized = identityLinksInitialized;
    }
    
    public List<IdentityLinkEntity> getDefinitionIdentityLinkEntities(){
        return definitionIdentityLinkEntities;
    }
    
    public void setDefinitionIdentityLinkEntities(List<IdentityLinkEntity> definitionIdentityLinkEntities){
        this.definitionIdentityLinkEntities = definitionIdentityLinkEntities;
    }
    
    public Set<Expression> getCandidateStarterUserIdExpressions(){
        return candidateStarterUserIdExpressions;
    }
    
    public void setCandidateStarterUserIdExpressions(Set<Expression> candidateStarterUserIdExpressions){
        this.candidateStarterUserIdExpressions = candidateStarterUserIdExpressions;
    }
    
    public Set<Expression> getCandidateStarterGroupIdExpressions(){
        return candidateStarterGroupIdExpressions;
    }
    
    public void setCandidateStarterGroupIdExpressions(Set<Expression> candidateStarterGroupIdExpressions){
        this.candidateStarterGroupIdExpressions = candidateStarterGroupIdExpressions;
    }
    
    public boolean isStartableInTasklist(){
        return isStartableInTasklist;
    }
    
    public void setStartableInTasklist(boolean startableInTasklist){
        isStartableInTasklist = startableInTasklist;
    }
    
    public boolean isFirstVersion(){
        return firstVersion;
    }
    
    public void setFirstVersion(boolean firstVersion){
        this.firstVersion = firstVersion;
    }
    
}
